/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package controlador;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Iterator;
import java.util.Vector;
import javax.swing.JOptionPane;
import modelo.Orden;
import modelo.Producto;
import vista.JFrameOrden;

/**
 *
 * @author eduardo
 */
public class controladorOrden implements ActionListener {
    JFrameOrden jframeOrden;
    Orden orden = new Orden();
    Producto producto = new Producto();
    Vector<Producto> vectorProducto = new Vector<Producto>();
    Vector<Integer>  vectorCantidad = new Vector<Integer>();

    public controladorOrden (JFrameOrden jframeOrden)
    {
    this.jframeOrden = jframeOrden;
    }

     public void actionPerformed(ActionEvent e) {
   Object fuente = e.getSource();
   if (fuente==jframeOrden.getBtnAgregar())
      agregar();
   else if (fuente==jframeOrden.getBtnEliminar())
      eliminar();
   else if (fuente==jframeOrden.getBtnRegistrar())
      registrar();
   }

      void agregar()
    {
     int posicion = jframeOrden.getComboProducto().getSelectedIndex();
     jframeOrden.getDtm().setValueAt(vectorProducto.elementAt(posicion).getCodigoProducto().toString(),jframeOrden.getIndiceTabla(), 0);
     jframeOrden.getDtm().setValueAt(vectorProducto.elementAt(posicion).getNombre().toString(),jframeOrden.getIndiceTabla(), 1);
     jframeOrden.getDtm().setValueAt(vectorProducto.elementAt(posicion).getPrecio(),jframeOrden.getIndiceTabla(), 2);
     jframeOrden.setIndiceTabla(jframeOrden.getIndiceTabla() +1);
    }
    void eliminar()
    {
     if(jframeOrden.getIndiceTabla() > 0)
     {
     jframeOrden.getDtm().removeRow(jframeOrden.getTablaOrden().getSelectedRow());
     jframeOrden.setIndiceTabla(jframeOrden.getIndiceTabla()-1);
        }
    }

    void registrar()
    {
        jframeOrden.getTablaOrden().clearSelection();
     if(!jframeOrden.getTxtCliente().getText().equals(""))
     {
         float total=0;
         float totalGeneral=0;
         Vector<Producto> vectorInsertar = new Vector<Producto>();
         for (int i = 0; i < jframeOrden.getIndiceTabla(); i++) {
             Producto productoInsertar = new Producto();
             productoInsertar.setCodigoProducto(jframeOrden.getDtm().getValueAt(i, 0).toString());
             vectorInsertar.add(productoInsertar);
             System.out.print(jframeOrden.getTablaOrden().getValueAt(i,3).toString());
             vectorCantidad.add(Integer.valueOf(jframeOrden.getTablaOrden().getValueAt(i,3).toString()));
             total= Float.parseFloat(jframeOrden.getTablaOrden().getValueAt(i, 2).toString())*Float.parseFloat(jframeOrden.getTablaOrden().getValueAt(i, 3).toString());
             jframeOrden.getTablaOrden().setValueAt(String.valueOf(total), i, 4);
             totalGeneral+=total;
         }
         jframeOrden.getTxtTotal().setText(String.valueOf(totalGeneral));
        JOptionPane.showMessageDialog(jframeOrden, "se ha registrado la orden con exito");
        orden.insertar(jframeOrden.getDtcFecha().getDate(),jframeOrden.getTxtCliente().getText().toString(),Float.parseFloat(jframeOrden.getTxtTotal().getText().toString()),vectorInsertar,vectorCantidad);
        jframeOrden.getTxtCliente().setText("");
        jframeOrden.getTxtTotal().setText("");
        jframeOrden.setIndiceTabla(0);
        jframeOrden.getDtm().setRowCount(0);
        jframeOrden.getDtm().setRowCount(50);   
     }
     else
     {
      JOptionPane.showMessageDialog(jframeOrden, "faltan datos, verifique");

     }

    }
    public void cargarCombos()
    {
    vectorProducto   = producto.catalogo();
        for (Iterator<Producto> it2 = vectorProducto.iterator(); it2.hasNext();) {
            Producto productop = it2.next();
            jframeOrden.getComboProducto().addItem(productop.getNombre());
        }

    }



}
